const wx = require('jweixin-module');
export default {
	methods: {
		/**
		 * 唤起支付 外卖订单微信支付
		 * @param {Number} sceneType 支付模式 0：外卖订单微信支付；1：储蓄充值；2：成为专业分销商 
		 * 
		 */
		entPay(outTradeNo, totalFee, sceneType = 0, attach = null) {
			const data = {
				outTradeNo,
				totalFee,
				sceneType,
				attach: attach!= null ? JSON.stringify(attach) : null,
			}
			console.log(data,'支付第一步的参数');
			this.$u.api.entPay(data).then(res => {
				this.encryption(res, sceneType);
			})
		},
		// 交换支付参数
		encryption(res, sceneType) {
			this.$u.api.encryption({
				prepayId: res.data.prepay_id
			}).then(rez => {
				this.onBridgeReady(rez.data, sceneType);
			})
		},
		onBridgeReady(payInfo, sceneType) {
			WeixinJSBridge.invoke('getBrandWCPayRequest', {
					"appId": payInfo.appId, //公众号ID，由商户传入    
					"timeStamp": payInfo.timeStamp, //时间戳，自1970年以来的秒数    
					"nonceStr": payInfo.nonceStr, //随机串    
					"package": payInfo.package,
					"signType": payInfo.signType, //微信签名方式：    
					"paySign": payInfo.paySign, //微信签名
				},
				function(payRet) {
					if (payRet.err_msg == "get_brand_wcpay_request:ok") {
						// 使用以上方式判断前端返回,微信团队郑重提示：
						//res.err_msg将在用户支付成功后返回ok，但并不保证它绝对可靠。
						if (sceneType == 0) {
							uni.showToast({
								title: '支付成功',
								icon: 'success',
								duration: 2000
							});
							setTimeout(()=>{
								uni.reLaunch({
									url: '/pages/money/paySuccess'
								})
							},2000)
						} else if (sceneType == 1) {
							uni.showToast({
								title: '充值成功',
								icon: 'success',
								success() {
									uni.navigateBack();
								}
							})
						} else {
							uni.showToast({
								title: '升级成功',
								icon: 'success',
								success() {
									uni.navigateBack();
								}
							})
						}
					} else if (payRet.err_msg == 'get_brand_wcpay_request:cancel') {
						uni.showToast({
							title: '取消支付!',
							icon: 'error',
							duration: 2000
						});
					} else {
						uni.showToast({
							title: '支付失败!' + payRet.err_msg,
							icon: 'error',
							duration: 2000
						});
					}
					uni.hideLoading();
				});
		}
	}
}